interface IFileUtils {
  /**
   * 文件下载
   * @param data -  文件数据
   * @param type - 文件类型
   * @param filename - 文件名
   * @return {boolean} - true: 下载成功，false: 下载失败
   */
  fileDownload: (data: Blob, type: string, filename: string) => boolean;

  /**
   * 获取请求头文件信息
   */
  getHeadersFileInfo: (val: any) => { fileName: string; type: string };

  /**
   * 创建文件选择器并返回选择的文件
   * @param {Object} options - 配置选项
   * @param {string} [options.accept=''] - 允许的文件类型，如 'image/*,.pdf'
   * @param {boolean} [options.multiple=false] - 是否允许多选
   * @returns {Promise<FileList|File|null>} - 返回选中的文件列表或单个文件（或null）
   */
  fileSelector: (options?: {
    accept?: string;
    multiple?: boolean;
  }) => Promise<FileList | File | null>;
}

export type { IFileUtils };
